package com.zerowidth.moc.web.controller.service;

import com.zerowidth.db.bean.vm.VipInfoVM;
import com.zerowidth.moc.web.bean.YsePayBean;
import com.zerowidth.moc.web.resp.ResultBean;
import org.springframework.http.ResponseEntity;

import jakarta.servlet.http.HttpServletRequest;
import java.util.Map;

public interface PayService {

    ResponseEntity<ResultBean<VipInfoVM>> getVipEnumList(String appName, String channel, boolean onlyUnbind, boolean dingSafe);

    ResponseEntity<ResultBean<Void>> exchange(HttpServletRequest request, String old_stat_id, String new_stat_id);



    ////////////////////////////////////////////////////////////////////////////////////////////////////
    //////////////////////////////////////////   微信支付      //////////////////////////////////////
    ///////////////////////////////////////////////////////////////////////////////////////////
    ResponseEntity<ResultBean<String>> createWXOrder(HttpServletRequest request, int vipType, String unbind_user_id);

    ResponseEntity<ResultBean<String>> createWXQrOrder(HttpServletRequest request, int vipType, String unbind_user_id);

    ResponseEntity<ResultBean<Void>> wxPayNotifyFromWxServer(HttpServletRequest request);

    ////////////////////////////////////////////////////////////////////////////////////////////////////
    //////////////////////////////////////////   支付宝支付      //////////////////////////////////////
    ///////////////////////////////////////////////////////////////////////////////////////////
    ResponseEntity<ResultBean<String>> createAlipayOrder(HttpServletRequest request,
                                                         int vipType, String unbind_user_id);

    ResponseEntity<ResultBean<Void>> alipayNotifyFromAliServer(HttpServletRequest request);

    ////////////////////////////////////////////////////////////////////////////////////////////////////

    ResponseEntity<String> hlPayNotifyFromAliServer(HttpServletRequest request);


    ResponseEntity<String> lsPayNotifyFromWxServer(HttpServletRequest request);

    ResponseEntity<String> ltPayNotify(HttpServletRequest request);

    ResponseEntity<ResultBean<YsePayBean>> createYSEQrOrder(HttpServletRequest request, int vipType, String unbind_user_id);

    ResponseEntity<ResultBean<String>> androidPayNotifyFromPhone(HttpServletRequest request, String channel, int payType, String money);

}
